/**
 * @author KujoMiva
 * @name context.js
 * @desc ctx扩展
 * @time 2020年05月12日 17:46:04 星期二
 */
'use strict';

module.exports = {
    /**
     * 响应请求方法
     * @this {Egg.Context} - egg context
     * @param {number} status - 响应状态码
     * @param {string} message - 响应消息内容
     * @param {*} [data] - 响应体
     */
    responseSuccess(status, message, data) {
        this.status = 200;
        this.body = { retcode: status, message, data };
    },

    /**
     * 中断请求方法
     * @this {Egg.Context} - egg context
     * @param {number} status - 响应状态码
     * @param {string} message - 响应消息内容
     * @param {*} [data] - 响应体
     */
    responseExceptions(status, message, data) {
        this.throw(status, message, { user: 'user', data });
    },

    /**
     * 拦截中断请求方法
     * @param {Error} error - error
     */
    catchUserExceptions(error) {
        if (error.user === 'user') {
            this.responseSuccess(error.status, error.message, error.data);
        } else {
            throw error;
        }
    },
};
